<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 什么是js -->
    <!-- js是一个弱类型的脚背语言 -->
    <!-- 表单自带提交功能 js最早就是用来做表单的检验的-->
    <!-- action="" 填写的是向后台提交的地址 -->


    <!-- <form action="https://api.it120.cc/small4/user/m/login?deviceId=007&deviceName=monkey" method="post">

       <input type="text" name="mobile" placeholder="请输入手机号">

       <input type="text" name="pwd" placeholder="请输入邮箱">

       <input type="submit" value="提交">
    </form> -->
   <div>20</div>
   <button>累加</button>
</body>
</html>
<script>
   let dom = document.querySelector('button');
   dom.onclick = function () {
     let num = document.querySelector('div').innerText*1;
     num++;
     document.querySelector('div').innerText = num;
   }
  
   // js的数据类型 就是纽带。
   // js的基本数据类型：null，string， number，boolean，undefind，symbol，bigint
   // js的引用数据类型有哪些: function, Array, Date, set, map, object,RegExp
   // let re = /^1/
   // let re = new RegExp('1')
   

   // 引用数据类型，存储在堆中，基本数据类型存储在栈中。
    // let a = 10;
    // let b = a;
    // b = 20;
    // console.log(a);
    // console.log(b);

    // let obj = {
    //   name: "张三"
    // }
    // let obj1 = obj;
    // obj1.name = '李四';
    // console.log(obj);


    // 数据类型的方法 基本数据类型   string， number 
    // charAt( ) 方法从一个字符串中返回某个下标上的字符
    // let str = "456789";
    // 传入的是下标。返回是下标的字符。
    // console.log(str.charAt(3));

    // concat( ) 方法将一个或多个字符串与原字符串连接合并，形成一个新的字符串并返回。
    // let str = '22';
    // let str1 = "02A";
    // let str2 = str.concat(str1,"老靳");
    // console.log(str2);

    // search( ) 获取某个字符或者字符串片段首次出现的位置
    // let str = "123123123";
    // console.log(str.search('3'));

    // match( ) 检索字符串或者正则表达式 能检索到，就返回字符串的信息，检索不到就返回 null
    // let str = "345678";
    // console.log(str.match(/78/));

    // replace(参数 1,参数 2); 参数 1：替换谁 参数 2：替换值, （只替换首次出现的位置，正则匹配除外）
    // let str = "89677";
    // let re = /7/g // g 匹配字符串中所有出现的7
    // console.log(str.replace(re,'11'));

    // slice( ) 和 substring( ) ( 开始位置，结束位置 ) 获取两个索引值之间的字符串片段 从下标 2 开始截取，到下标 4 结束，但不包含 4

    // let str = '3456';
    // console.log(str.slice(1,3));

    //substr ( 开始位置，截取的长度 ) 获取两个索引值之间的字符串片段

    // console.log(str.substr(1,3));


    // indexOf( ) 获取某个字符或者字符串首次出现的位置，找到则返回索引值，找不到则返回-1
    // lastIndexOf( ) 获取某个字符或者字符串最后出现的位置，找到则返回索引值，找不到则返回-1
    
    // let str = '456456';
    // console.log(str.indexOf('6'));
    // console.log(str.lastIndexOf('6'));
    // console.log(Number.prototype);

    
    // let str = "123";
    // console.log(str.indexOf('3'));


    // console.log(Array.prototype);

    // console.log(Object.prototype);

    // 对象的合并 assign 至少接受两个值，
    // let obj = {name:"张三",age:18};
    // let obj1 = {sing:"我会唱歌"};
    // let obj2 = Object.assign(obj,obj1,{num:30});
    // console.log(obj2);
    let obj = {name:"张三",age:18};
    // Object.keys 提取对象的属性名，变成数组；
    let arr = Object.keys(obj);
    console.log(arr);

    // for (const key in obj) {
    //    console.log(obj[key]);
    // }

    Object.keys(obj).forEach(item => {
      // console.log(obj[item]);
      console.log(item);
    })

</script>